#[repr(u8)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub enum Opcode {
    Nop = 0,
    Unreachable = 1,
    Select = 2,
    I32Const = 3,
    I32Add = 4,
    I32Sub = 5,
    I32Mul = 6,
    I32DivS = 7,
    I32DivU = 8,
    I32RemS = 9,
    I32RemU = 10,
    I32And = 11,
    I32Or = 12,
    I32Xor = 13,
    I32Shl = 14,
    I32ShrS = 15,
    I32ShrU = 16,
    I32Rotl = 17,
    I32Rotr = 18,
    I32Clz = 19,
    I32Ctz = 20,
    I32PopCnt = 21,
    I32EqZ = 22,
    I32Eq = 23,
    I32Ne = 24,
    I32LtS = 25,
    I32LtU = 26,
    I32LeS = 27,
    I32LeU = 28,
    I32GtS = 29,
    I32GtU = 30,
    I32GeS = 31,
    I32GeU = 32,
    I64Const = 34,
    I64Add = 35,
    I64Sub = 36,
    I64Mul = 37,
    I64DivS = 38,
    I64DivU = 39,
    I64RemS = 40,
    I64RemU = 41,
    I64Rotl = 42,
    I64Rotr = 43,
    I64Clz = 44,
    I64Ctz = 45,
    I64PopCnt = 46,
    I64EqZ = 47,
    I64And = 48,
    I64Or = 49,
    I64Xor = 50,
    I64Shl = 51,
    I64ShrS = 52,
    I64ShrU = 53,
    I64Eq = 54,
    I64Ne = 55,
    I64LtS = 56,
    I64LtU = 57,
    I64LeS = 58,
    I64LeU = 59,
    I64GtS = 60,
    I64GtU = 61,
    I64GeS = 62,
    I64GeU = 63,
    F32Add = 65,
    F32Sub = 66,
    F32Mul = 67,
    F32Div = 68,
    F32Sqrt = 69,
    F32Min = 70,
    F32Max = 71,
    F32Ceil = 72,
    F32Floor = 73,
    F32Trunc = 74,
    F32Nearest = 75,
    F32Abs = 76,
    F32Neg = 77,
    F32CopySign = 78,
    F32Eq = 79,
    F32Ne = 80,
    F32Lt = 81,
    F32Le = 82,
    F32Gt = 83,
    F32Ge = 84,
    F64Add = 86,
    F64Sub = 87,
    F64Mul = 88,
    F64Div = 89,
    F64Sqrt = 90,
    F64Min = 91,
    F64Max = 92,
    F64Ceil = 93,
    F64Floor = 94,
    F64Trunc = 95,
    F64Nearest = 96,
    F64Abs = 97,
    F64Neg = 98,
    F64CopySign = 99,
    F64Eq = 100,
    F64Ne = 101,
    F64Lt = 102,
    F64Le = 103,
    F64Gt = 104,
    F64Ge = 105,
    I32WrapI64 = 107,
    I32TruncUF32 = 108,
    I32TruncUF64 = 109,
    I32TruncSF32 = 110,
    I32TruncSF64 = 111,
    I64TruncUF32 = 112,
    I64TruncUF64 = 113,
    I64TruncSF32 = 114,
    I64TruncSF64 = 115,
    I64ExtendUI32 = 116,
    I64ExtendSI32 = 117,
    F32DemoteF64 = 119,
    F64PromoteF32 = 120,
    F32ConvertSI32 = 121,
    F32ConvertSI64 = 122,
    F32ConvertUI32 = 123,
    F32ConvertUI64 = 124,
    F64ConvertSI32 = 125,
    F64ConvertSI64 = 126,
    F64ConvertUI32 = 127,
    F64ConvertUI64 = 128,
    I32Load = 130,
    I64Load = 131,
    I32Store = 133,
    I64Store = 134,
    I32Load8S = 136,
    I32Load16S = 137,
    I64Load8S = 138,
    I64Load16S = 139,
    I64Load32S = 140,
    I32Load8U = 142,
    I32Load16U = 143,
    I64Load8U = 144,
    I64Load16U = 145,
    I64Load32U = 146,
    I32Store8 = 148,
    I32Store16 = 149,
    I64Store8 = 150,
    I64Store16 = 151,
    I64Store32 = 152,
    Jmp = 154,
    JmpIf = 155,
    JmpEither = 156,
    JmpTable = 157,
    ReturnValue = 158,
    ReturnVoid = 159,
    GetLocal = 161,
    SetLocal = 162,
    GetGlobal = 164,
    SetGlobal = 165,
    Call = 167,
    CallIndirect = 168,
    InvokeImport = 169,
    CurrentMemory = 171,
    GrowMemory = 172,
    Phi = 174,
    AddGas = 176,
    Unknown = 178,
}
